Notes and Setup
This is an initial attemmt at compiling the data. Future work includes: 1. Developing more rigorous QAQC procedures 2. Implimenting said procedures 3. Increasing the spead of the database upload…[right now it took over 7.5 hours!]
Water Level QAQC
NB Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
JB Upland Well 1
This is preliminary data and will undergo more rigurous QAQC at a later date.
JB Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
JC Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
JC Upland Well 1
This is preliminary data and will undergo more rigurous QAQC at a later date.
JB Upland Well 2
This is preliminary data and will undergo more rigurous QAQC at a later date.
JA Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
Jones Road North Catchment Outlet
This is preliminary data and will undergo more rigurous QAQC at a later date.
DV Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
Denver Catchment Outlet
This is preliminary data and will undergo more rigurous QAQC at a later date.
TI Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
Tracer Catchment Outlet
This is preliminary data and will undergo more rigurous QAQC at a later date.
SB Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
SB DF Wetland Well Shallow
This is preliminary data and will undergo more rigurous QAQC at a later date.
QB Wetland Well Deep
This is preliminary data and will undergo more rigurous QAQC at a later date.
Database Import
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
Time difference of 1.248308 mins
[1] TRUE
LS0tCnRpdGxlOiAiTm92ZW1iZXIgMSwgMjAxNyBEYXRhIERvd25sb2FkICYgUHJvY2Vzc2luZyIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6IHllcwogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKLS0tCgojTm90ZXMgYW5kIFNldHVwCgpUaGlzIGlzIGFuIGluaXRpYWwgYXR0ZW1tdCBhdCBjb21waWxpbmcgdGhlIGRhdGEuICBGdXR1cmUgd29yayBpbmNsdWRlczoKMS4gIERldmVsb3BpbmcgbW9yZSByaWdvcm91cyBRQVFDIHByb2NlZHVyZXMKMi4gIEltcGxpbWVudGluZyBzYWlkIHByb2NlZHVyZXMKMy4gIEluY3JlYXNpbmcgdGhlIHNwZWFkIG9mIHRoZSBkYXRhYmFzZSB1cGxvYWQuLi5bcmlnaHQgbm93IGl0IHRvb2sgb3ZlciA3LjUgaG91cnMhXQoKCmBgYHtyIHNldHVwLCBlY2hvPUZBTFNFLCByZXN1bHRzPSJoaWRlIiwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0KI0NsZWFyIE1lbW9yeQpybShsaXN0PWxzKGFsbD1UUlVFKSkKCiNMb2FkIFJlcXVpcmVkIFBhY2thZ2VzCmxpYnJhcnkoZHBseXIpICAgCmxpYnJhcnkoZGV2dG9vbHMpCmxpYnJhcnkoUlNRTGl0ZSkKbGlicmFyeShEQkkpCmxpYnJhcnkoeHRzKQpsaWJyYXJ5KGR5Z3JhcGhzKQpsaWJyYXJ5KFJQb3N0Z3JlU1FMKQoKI0xvYWQgUGFsbWVyIExhYiB0b29scwpzb3VyY2UoIn4vcHJlc3N1cmVfdHJhbnNkdWNlcnMvZGJfZ2V0X3dhdGVyX2xldmVsX3RzLlIiKQpkZXZ0b29sczo6aW5zdGFsbF9naXRodWIocmVwbz0icm9kbTIiLHVzZXJuYW1lPSJraG9uZHVsYSIsIHF1aWV0ID0gRikKbGlicmFyeShyb2RtMikKCiNEZWZpbmUgd29ya2luZyBkaXJlY3RvcnkgYW5kIGRhdGFiYXNlIGxvY2F0aW9uCndvcmtpbmdfZGlyPC0iLy9uZnMvcGFsbWVyLWdyb3VwLWRhdGEvQ2hvcHRhbmsvTmF0ZS9QVF9EYXRhLzIwMTcxMTAxX0Rvd25sb2Fkcy8iCmRiX2xvYzwtIi8vbmZzL3BhbG1lci1ncm91cC1kYXRhL0Nob3B0YW5rL05hdGUvUFRfRGF0YS9vZG0yLnNxbGl0ZSIKCiNEb3dubG9hZCBEYXRhCm1hc3RlcjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJ3ZWxsX2xvZy5jc3YiKSkKCiNDcmVhdGUgdGVtcCBmaWxlCmRpci5jcmVhdGUocGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUiKSkKCiNDb25uZWN0IHRvIGRhdGFiYXNlCmRiIDwtIGRiQ29ubmVjdChQb3N0Z3JlU1FMKCksIAogICAgICAgICAgICAgICAgaG9zdCAgICAgPSAic2VzeW5jLXBvc3RnaXMwMS5yZXNlYXJjaC5zZXN5bmMub3JnIiwKICAgICAgICAgICAgICAgIGRibmFtZSAgID0gImNob3B0YW5rIiwKICAgICAgICAgICAgICAgIHVzZXIgICAgID0gInBhbG1lcmdyb3VwIiwgCiAgICAgICAgICAgICAgICBwYXNzd29yZCA9IHJlYWRsaW5lKHByb21wdD0iRW50ZXIgcGFzc3dvcmQ6ICIpKQpgYGAKCmBgYHtyIGluaXRpYWwtY2hlY2tzLCBlY2hvPUZBTFNFLCByZXN1bHRzPSJoaWRlIn0KI0NoZWNrIHRvIG1ha2Ugc3VyZSBzaXRlIG5hbWVzIGFyZSBpbiBEQi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmE8LWFzLm1hdHJpeChtYXN0ZXJbLCJTaXRlX05hbWUiXSwgbmNvbD0xKQpiPC1nZXRfc2l0ZV9uYW1lc19saWtlKCIgIixkYikjYXMubWF0cml4KGRiR2V0UXVlcnkoZGIsIlNFTEVDVCBTYW1wbGluZ0ZlYXR1cmVDb2RlIEZST00gU2FtcGxpbmdGZWF0dXJlcyIpKQppZihsZW5ndGgoYVshKGEgJWluJSBiKV0pIT0wKXsKICB3YXJuaW5nKHBhc3RlMCgiU2l0ZSBOYW1lcyBpbiBXZWxsIExvZyBhbmQgRGF0YWJhc2UgZG8gbm90IG1hdGNoISEiKSkKICBwcmludChhWyEoYSAlaW4lIGIpXSkKfWVsc2V7CiAgIlNpdGUgTmFtZXMgTWF0Y2ghIgp9CgojQ2hlY2sgdG8gbWFrZSBzdXJlIFNvbmRlIElEIGluIHdlbGwgbG9nIGFuZCBTZXJpYWwgTnVtYmVyIGluIGZpbGVzIG1hdGNoLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZnVuPC1mdW5jdGlvbihuKXsKICAjUmVhZCBkYXRhCiAgdGVtcDwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgbG9nc1tuXSksIHNraXA9MSkKICAKICAjZXh0cmFjdCBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcjwtY29sbmFtZXModGVtcClbZ3JlcCgiTEdSIixjb2xuYW1lcyh0ZW1wKSldWzFdICAjRmluZCBjb2xsdW1uIG5hbWUgd2l0aCBzZXJpYWwgbnVtYmVyCiAgc2VyaWFsX251bWJlcjwtc3Vic3RyKHNlcmlhbF9udW1iZXIsICAgI2lzb2xhdGUgc2VyaWFsIG51bWJlcgogICAgICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiU0VOLlMuTiIsc2VyaWFsX251bWJlcilbWzFdXVsxXSs5LCAjU3RhcnQKICAgICAgICAgICAgICAgICAgICAgICAgbmNoYXIoc2VyaWFsX251bWJlciktMSkgI3N0b3AKICBzZXJpYWxfbnVtYmVyPC1hcy5udW1lcmljKHNlcmlhbF9udW1iZXIpIAogIAogICNleHBvcnQgc2VyaWFsIG51bWJlcgogIHNlcmlhbF9udW1iZXIKfQojQ3JlYXRlIGxpc3Qgb2YgZmlsZXMgCmxvZ3M8LWxpc3QuZmlsZXMocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQiKSkKbG9nczwtbG9nc1tsb2dzIT0iYmFyby5jc3YiXQphPC1zYXBwbHkoc2VxKDEsbGVuZ3RoKGxvZ3MpKSwgZnVuKSAgCmI8LW1hc3RlciRTb25kZV9JRCAgCmlmKGxlbmd0aChhWyEoYSAlaW4lIGIpXSkhPTApewogIHdhcm5pbmcocGFzdGUwKCJTb25kZSBzZXJpYWwgbnVtYmVyIGluIFdlbGwgTG9nIGFuZCBkYXRhIGZpbGVzIGRvIG5vdCBtYXRjaCEhIikpCiAgcHJpbnQoYVshKGEgJWluJSBiKV0pCn1lbHNlewogICJTZXJpYWwgTnVtYmVycyBNYXRjaCIKfQoKI0NoZWNrIHVuaXRzIGluIGZpbGVzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNDcmVhdGUgZnVuY3RvaW4gdG8gY2hlY2sgdW5pdHMgaW4gZmlsZQpmdW48LWZ1bmN0aW9uKG4pewogICNEb253bG9hZCBkYXRhCiAgdGVtcDwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgbG9nc1tuXSksIHNraXA9MSkKICAKICAjQ2hlY2sgcHJlc3N1cmUgdW5pdHMKICBwcmVzc191bml0czwtY29sbmFtZXModGVtcClbZ3JlcCgia1BhIixjb2xuYW1lcyh0ZW1wKSldWzFdIAogIHByZXNzX3VuaXRzPC1zdWJzdHIocHJlc3NfdW5pdHMsICAgI2lzb2xhdGUgdGVtcGVyYXR1cmUgdW5pdHMKICAgICAgICAgICAgICAgICAgICAgZ3JlZ2V4cHIoIkFicy5QcmVzIiwgcHJlc3NfdW5pdHMpW1sxXV1bMV0rMTAsICNTdGFydAogICAgICAgICAgICAgICAgICAgICBncmVnZXhwcigiQWJzLlByZXMiLCBwcmVzc191bml0cylbWzFdXVsxXSsxMikgI3N0b3AKCiAgI0NoZWNrIHRlbXAgdW5pdHMKICB0ZW1wX3VuaXRzPC1jb2xuYW1lcyh0ZW1wKVtncmVwKCJUZW1wIixjb2xuYW1lcyh0ZW1wKSldWzFdIAogIHRlbXBfdW5pdHM8LXN1YnN0cih0ZW1wX3VuaXRzLCAgICNpc29sYXRlIHRlbXBlcmF0dXJlIHVuaXRzCiAgICAgICAgICAgICAgICAgICAgIGdyZWdleHByKCJUZW1wIiwgdGVtcF91bml0cylbWzFdXVsxXSs3LCAjU3RhcnQKICAgICAgICAgICAgICAgICAgICAgZ3JlZ2V4cHIoIlRlbXAiLCB0ZW1wX3VuaXRzKVtbMV1dWzFdKzcpICNzdG9wCiAgCiAgI1ByaW50IHVuaXRzCiAgZGF0YS5mcmFtZShmaWxlbmFtZT1sb2dzW25dLCAKICAgICAgICAgICAgIHByZXNzdXJlPXByZXNzX3VuaXRzLCAKICAgICAgICAgICAgIHRlbXBlcmF0dXJlPXRlbXBfdW5pdHMpCn0KeDwtbGFwcGx5KHNlcSgxLCBsZW5ndGgobG9ncykpLCBmdW4pCng8LWRhdGEuZnJhbWUoZG8uY2FsbChyYmluZCx4KSkKcHJpbnQoeCkKYGBgCgpgYGB7ciBwdC1kYXRhLXdyYW5nbGluZywgZWNobz1GQUxTRSwgcmVzdWx0cz0iaGlkZSJ9CiNjcmVhdGUgZnVuY3Rpb24gdG8gZG93bmxvYWQgbG9ncywgY2xlYW4sIGFuZCByZXdyaXRlIGluIHRlbXAgZm9sZGVyCmZ1bjwtZnVuY3Rpb24obil7CiAgI1NldHVwfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICNSZWFkIGRhdGEKICBkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgbG9nc1tuXSksIHNraXA9MSkKICAKICAjRGVmaW5lIHNlcmlhbCBudW1iZXIKICBzZXJpYWxfbnVtYmVyPC1jb2xuYW1lcyhkZilbZ3JlcCgiTEdSIixjb2xuYW1lcyhkZikpXVsxXSAgI0ZpbmQgY29sbHVtbiBuYW1lIHdpdGggc2VyaWFsIG51bWJlcgogIHNlcmlhbF9udW1iZXI8LXN1YnN0cihzZXJpYWxfbnVtYmVyLCAgICNpc29sYXRlIHNlcmlhbCBudW1iZXIKICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZ2V4cHIoIlNFTi5TLk4iLHNlcmlhbF9udW1iZXIpW1sxXV1bMV0rOSwgI1N0YXJ0CiAgICAgICAgICAgICAgICAgICAgICAgIG5jaGFyKHNlcmlhbF9udW1iZXIpLTEpICNzdG9wCiAgc2VyaWFsX251bWJlcjwtYXMubnVtZXJpYyhzZXJpYWxfbnVtYmVyKSAKICAKICAjRGV0ZXJtaW5lIHRpbWV6b25lIG9mZnNldCBpbiBzZWNvbmRzCiAgdGltZV9vZmZzZXQ8LWNvbG5hbWVzKGRmKVtncmVwKCJHTVQiLGNvbG5hbWVzKGRmKSldICAjR3JhYiBjb2xsdW1uIG5hbWUgdy8gdGltZSBvZmZzZXQKICB0aW1lX29mZnNldDwtYXMubnVtZXJpYyhzdWJzdHIodGltZV9vZmZzZXQsIDE2LDE4KSkqMzYwMCthcy5udW1lcmljKHN1YnN0cih0aW1lX29mZnNldCwgMTksMjApKSo2MAogIAogICNEZWZpbmUgdmFyaWFibGVzIGZyb20gd2VsbCBsb2cKICBzaXRlX25hbWU8LW1hc3RlciRTaXRlX05hbWVbbWFzdGVyJFNvbmRlX0lEPT1zZXJpYWxfbnVtYmVyXQogIGRlcGxveW1lbnQ8LXN0cnB0aW1lKHBhc3RlKG1hc3RlciREYXRlW21hc3RlciRTb25kZV9JRD09c2VyaWFsX251bWJlcl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzdGVyJFRpbWVbbWFzdGVyJFNvbmRlX0lEPT1zZXJpYWxfbnVtYmVyXSksIAogICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD0iJW0vJWQvJVkgJUg6JU0iLCB0ej0iR01UIikKICBkZXBsb3ltZW50PC1kZXBsb3ltZW50LXRpbWVfb2Zmc2V0CiAgcmVsYXRpdmVfd2w8LW1hc3RlciRSZWxhdGl2ZV9XYXRlcl9MZXZlbF9tW21hc3RlciRTb25kZV9JRD09c2VyaWFsX251bWJlcl0KICBiYXJvX2ZpbGU8LW1hc3RlciRiYXJvX2ZpbGVbbWFzdGVyJFNvbmRlX0lEPT1zZXJpYWxfbnVtYmVyXQogIAogICN3YXRlciBsZXZlbCB0aW1lIHNlcmVpc35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICNzdWJzZXQgZGF0YWZyYW1lIHRvIHRlbXAsIGFic19wcmVzLCBhbmQgdGVtcAogIGRmPC1kZlssYygyLDMsNCldCiAgY29sbmFtZXMoZGYpPC1jKCJUaW1lc3RhbXAiLCAicHJlc3N1cmVBYnNvbHV0ZSIsICJ0ZW1wX2MiKQogIAogICNmb3JtYXQgZGF0ZV90aW1lCiAgZGYkVGltZXN0YW1wPC1zdHJwdGltZShkZiRUaW1lc3RhbXAsICIlbS8lZC8leSAlSTolTTolUyAlcCIpLXRpbWVfb2Zmc2V0CiAgZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKICAKICAjYmFybyBmaWxlIHRpbWUgc2VyaWVzfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgI1N1YnNldCBkYXRhZnJhbWUgdG8gdGVtcCwgYWJzX3ByZXMsIGFuZCB0ZW1wCiAgYmFybzwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQvIiwgYmFyb19maWxlKSwgc2tpcD0xKQogIGJhcm88LWJhcm9bLGMoMiwzLDQpXQogIGNvbG5hbWVzKGJhcm8pPC1jKCJUaW1lc3RhbXAiLCAiYmFyb21ldHJpY1ByZXNzdXJlIiwgInRlbXBfYyIpCiAgCiAgI2Zvcm1hdCBkYXRlIGFuZCB0aW1lCiAgYmFybyRUaW1lc3RhbXA8LXN0cnB0aW1lKGJhcm8kVGltZXN0YW1wLCAiJW0vJWQvJXkgJUk6JU06JVMgJXAiKS10aW1lX29mZnNldAogIGJhcm8kVGltZXN0YW1wPC1hcy5QT1NJWGN0KGJhcm8kVGltZXN0YW1wKQogIAogICNDYWNsdWN1bGF0ZSB3YXRlcmxldmVsfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICNjcmVhdGUgYmFybyBpbnRlcnBvbGF0aW9uIGZ1bmN0aW9uCiAgYmFyb19mdW48LWFwcHJveGZ1bihiYXJvJFRpbWVzdGFtcCwgYmFybyRiYXJvbWV0cmljUHJlc3N1cmUpCiAgCiAgI2NhbGN1bGF0ZSBiYXJvIGZvciBlYWNoIGRmIHRpbWUgc3RlcAogIGRmJGJhcm9tZXRyaWNQcmVzc3VyZTwtYmFyb19mdW4oZGYkVGltZXN0YW1wKQogIAogICNDYWNsdWF0ZSBnYWdlIHByZXNzdXJlCiAgZGYkcHJlc3N1cmVHYXVnZTwtZGYkcHJlc3N1cmVBYnNvbHV0ZS1kZiRiYXJvbWV0cmljUHJlc3N1cmUKICAKICAjQ2FsY3VsYXRlIHJlbGF0aXZlIHdhdGVyIGxldmVsCiAgZGYkZ2FnZUhlaWdodDwtZGYkcHJlc3N1cmVHYXVnZS85LjgxCiAgCiAgI1dhdGVyIExldmVsCiAgZGYkd2F0ZXJMZXZlbDwtZGYkZ2FnZUhlaWdodCtyZWxhdGl2ZV93bAogIAogICNQcnVuZSB3YXRlciBsZXZlbCBiYXNlZCBvbiBkZXBsb3ltZW50IHRpbWUKICBkZjwtZGZbZGYkVGltZXN0YW1wPGRlcGxveW1lbnQsXQogIGRmPC1uYS5vbWl0KGRmKQogIAogICNhZGQgIm9mZnNldCBjb2xsdW1uIgogIGRmJG9mZnNldDwtMAogIAogICNXcml0ZSBkZiB0byB0ZW1wIGZpbGUKICB3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwiaW50ZXJtZWRpYXRlLyIsIHNlcmlhbF9udW1iZXIsIi5jc3YiKSkKfQoKI0NyZWF0ZSBsaXN0IG9mIFBUIGZpbGVzCmxvZ3M8LWxpc3QuZmlsZXMocGFzdGUwKHdvcmtpbmdfZGlyLCJleHBvcnQiKSkKbG9nczwtbG9nc1tsb2dzIT0iYmFyby5jc3YiXQoKI2NyZWF0ZSB0ZW1wIGZpbGUgdG8gc3RvcmUgaW50ZXJtZWRpYXRlIGZpbGVzCmRpci5jcmVhdGUocGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUiKSkKCiNSdW4gZnVuY3Rpb24gCmxhcHBseShzZXEoMSwgbGVuZ3RoKGxvZ3MpKSwgZnVuKQpgYGAKCiNXYXRlciBMZXZlbCBRQVFDCmBgYHtyIHRzX3Bsb3QgZnVuY3Rpb24sIGVjaG89RkFMU0UsIHJlc3VsdHM9ImhpZGUifQpmdW48LWZ1bmN0aW9uKG4pewogICNSZWFkIGRmCiAgZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQogIGRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCiAgZGYkd2F0ZXJMZXZlbDwtZGYkd2F0ZXJMZXZlbCoxMDArMTAwMCAKICAKICAjcHVsbCB3YXRlciBsZXZlbCBmcm9tIGRhdGFiYXNlCiAgZGZfaGlzdG9yaWM8LWRiX2dldF93YXRlcl9sZXZlbF90cyhkYixwYXN0ZShtYXN0ZXIkU2l0ZV9OYW1lWzFdKSkKICAKICAjRm9ybWF0IGRmCiAgaWYobGVuZ3RoKGRmX2hpc3RvcmljKT09MCl7CiAgICBkZiA8LSBkZiAlPiUgc2VsZWN0KFRpbWVzdGFtcCwgd2F0ZXJMZXZlbCkKICAgIGRmX3h0czwteHRzKGRmLCBvcmRlci5ieT1kZiRUaW1lc3RhbXApCiAgICBkZl94dHM8LWRmX3h0c1ssLTFdCiAgfWVsc2V7CiAgICAjYWRkIGRhdHVtIGNvcnJlY3Rpb24gdG8gZGZfaGlzdG9yaWMKICAgIGRmIDwtIGRmICU+JSBzZWxlY3QoVGltZXN0YW1wLCB3YXRlckxldmVsKQogICAgZGZfaGlzdG9yaWMkd2F0ZXJMZXZlbDwtZGZfaGlzdG9yaWMkd2F0ZXJMZXZlbCoxMDArMTAwMCAgCiAgICBkZl9oaXN0b3JpYzwtZGZfaGlzdG9yaWNbLGMoIlRpbWVzdGFtcCIsIndhdGVyTGV2ZWwiKV0KICAgIGRmX2hpc3RvcmljJGdyb3VwPC0ib2xkIgogICAgZGYkZ3JvdXA8LSJuZXciCiAgICBkZjwtcmJpbmQoZGZfaGlzdG9yaWMsIGRmKQogICAgZGZfc3ByZWFkIDwtIGRmICU+JSAKICAgICAgIGRwbHlyOjpzZWxlY3QoVGltZXN0YW1wLCBncm91cCwgd2F0ZXJMZXZlbCkgJT4lCiAgICAgICB0aWR5cjo6c3ByZWFkKGtleSA9IGdyb3VwLCB2YWx1ZSA9IHdhdGVyTGV2ZWwpCiAgICBkZl94dHM8LXh0cyhkZl9zcHJlYWQsIG9yZGVyLmJ5PWRmX3NwcmVhZCRUaW1lc3RhbXApCiAgICBkZl94dHM8LWRmX3h0c1ssLTFdCiAgICB9CiAgCiAgI1Bsb3QKICB0c19wbG90PC1keWdyYXBoKGRmX3h0cywgbWFpbj1tYXN0ZXIkU2l0ZV9OYW1lW25dKSAlPiUKICAgICAgICAgICAgICBkeVJhbmdlU2VsZWN0b3IoKSAlPiUKICAgICAgICAgICAgICBkeUxlZ2VuZCgpICU+JQogICAgICAgICAgICAgIGR5T3B0aW9ucyhzdHJva2VXaWR0aCA9IDEuNSkgJT4lCiAgICAgICAgICAgICAgZHlPcHRpb25zKGxhYmVsc1VUQyA9IFRSVUUpICU+JQogICAgICAgICAgICAgIGR5SGlnaGxpZ2h0KGhpZ2hsaWdodENpcmNsZVNpemUgPSA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHRTZXJpZXNCYWNrZ3JvdW5kQWxwaGEgPSAwLjIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVPbk1vdXNlT3V0ID0gRkFMU0UpICU+JQogICAgICAgICAgICAgIGR5QXhpcygieSIsIGxhYmVsID0gIldhdGVyIExldmVsIFtjbV0iKQogIAogICNFeHBvcnQgUGxvdAogIHJldHVybih0c19wbG90KQp9CmBgYAoKIyNOQiBXZXRsYW5kIFdlbGwgU2hhbGxvdwpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49MQoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjIEpCIFVwbGFuZCBXZWxsIDEKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTIKCiNSZWFkIGRmCmRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiNFZGl0cwojZGY8LWRmWyEoZGYkVGltZXN0YW1wPmFzLlBPU0lYY3QoIjIwMTctMDktMjcgMDQ6MDAgVVRDIikgJiBkZiRUaW1lc3RhbXA8YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAxMTowMCBVVEMiKSksXQoKI2V4cG9ydCB1cGRhdGVkIGNzdgojd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKCiNDcmVhdGUgUGxvdApmdW4obikKYGBgCgojIyBKQiBXZXRsYW5kIFdlbGwgU2hhbGxvdwpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTMKCiNSZWFkIGRmCmRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiNFZGl0cwojZGY8LWRmWyEoZGYkVGltZXN0YW1wPmFzLlBPU0lYY3QoIjIwMTctMDktMjcgMDQ6MDAgVVRDIikgJiBkZiRUaW1lc3RhbXA8YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAxMTowMCBVVEMiKSksXQoKI2V4cG9ydCB1cGRhdGVkIGNzdgojd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKCiNDcmVhdGUgUGxvdApmdW4obikKYGBgCgojIyBKQyBXZXRsYW5kIFdlbGwgU2hhbGxvdwpUaGlzIGlzIHByZWxpbWluYXJ5IGRhdGEgYW5kIHdpbGwgdW5kZXJnbyBtb3JlIHJpZ3Vyb3VzIFFBUUMgYXQgYSBsYXRlciBkYXRlLiAKCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTQKCiNSZWFkIGRmCmRmPC1yZWFkLmNzdihwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiNFZGl0cwojZGY8LWRmWyEoZGYkVGltZXN0YW1wPmFzLlBPU0lYY3QoIjIwMTctMDktMjcgMDQ6MDAgVVRDIikgJiBkZiRUaW1lc3RhbXA8YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAxMTowMCBVVEMiKSksXQoKI2V4cG9ydCB1cGRhdGVkIGNzdgojd3JpdGUuY3N2KGRmLCBwYXN0ZTAod29ya2luZ19kaXIsICJpbnRlcm1lZGlhdGUvIixtYXN0ZXIkU29uZGVfSURbbl0sIi5jc3YiKSkKCiNDcmVhdGUgUGxvdApmdW4obikKYGBgCgojIyBKQyBVcGxhbmQgV2VsbCAxClRoaXMgaXMgcHJlbGltaW5hcnkgZGF0YSBhbmQgd2lsbCB1bmRlcmdvIG1vcmUgcmlndXJvdXMgUUFRQyBhdCBhIGxhdGVyIGRhdGUuIAoKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49NQoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjIEpCIFVwbGFuZCBXZWxsIDIKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCgpgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj02CgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKIyMgSkEgV2V0bGFuZCBXZWxsIFNoYWxsb3cKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCgpgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj03CgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKIyMgSm9uZXMgUm9hZCBOb3J0aCBDYXRjaG1lbnQgT3V0bGV0ClRoaXMgaXMgcHJlbGltaW5hcnkgZGF0YSBhbmQgd2lsbCB1bmRlcmdvIG1vcmUgcmlndXJvdXMgUUFRQyBhdCBhIGxhdGVyIGRhdGUuIAoKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49OAoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjIERWIFdldGxhbmQgV2VsbCBTaGFsbG93ClRoaXMgaXMgcHJlbGltaW5hcnkgZGF0YSBhbmQgd2lsbCB1bmRlcmdvIG1vcmUgcmlndXJvdXMgUUFRQyBhdCBhIGxhdGVyIGRhdGUuIAoKYGBge3IsIGVjaG89RkFMU0V9CiNsb2cgbnVtYmVyCm49OQoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjRGVudmVyIENhdGNobWVudCBPdXRsZXQKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCgpgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj0xMAoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjVEkgV2V0bGFuZCBXZWxsIFNoYWxsb3cKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCgpgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj0xMQoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjVHJhY2VyIENhdGNobWVudCBPdXRsZXQKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCgpgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj0xMgoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjU0IgV2V0bGFuZCBXZWxsIFNoYWxsb3cKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCgpgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj0xMwoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjU0IgREYgV2V0bGFuZCBXZWxsIFNoYWxsb3cKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCgpgYGB7ciwgZWNobz1GQUxTRX0KI2xvZyBudW1iZXIKbj0xNAoKI1JlYWQgZGYKZGY8LXJlYWQuY3N2KHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQpkZiRUaW1lc3RhbXA8LWFzLlBPU0lYY3QoZGYkVGltZXN0YW1wKQoKI0VkaXRzCiNkZjwtZGZbIShkZiRUaW1lc3RhbXA+YXMuUE9TSVhjdCgiMjAxNy0wOS0yNyAwNDowMCBVVEMiKSAmIGRmJFRpbWVzdGFtcDxhcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDExOjAwIFVUQyIpKSxdCgojZXhwb3J0IHVwZGF0ZWQgY3N2CiN3cml0ZS5jc3YoZGYsIHBhc3RlMCh3b3JraW5nX2RpciwgImludGVybWVkaWF0ZS8iLG1hc3RlciRTb25kZV9JRFtuXSwiLmNzdiIpKQoKI0NyZWF0ZSBQbG90CmZ1bihuKQpgYGAKCiMjUUIgV2V0bGFuZCBXZWxsIERlZXAKVGhpcyBpcyBwcmVsaW1pbmFyeSBkYXRhIGFuZCB3aWxsIHVuZGVyZ28gbW9yZSByaWd1cm91cyBRQVFDIGF0IGEgbGF0ZXIgZGF0ZS4gCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTE1CgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKIyNRQiBVcGxhbmQgV2VsbCAxCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTE2CgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKIyNRQiBVcGxhbmQgV2VsbCAyCmBgYHtyLCBlY2hvPUZBTFNFfQojbG9nIG51bWJlcgpuPTE3CgojUmVhZCBkZgpkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCmRmJFRpbWVzdGFtcDwtYXMuUE9TSVhjdChkZiRUaW1lc3RhbXApCgojRWRpdHMKI2RmPC1kZlshKGRmJFRpbWVzdGFtcD5hcy5QT1NJWGN0KCIyMDE3LTA5LTI3IDA0OjAwIFVUQyIpICYgZGYkVGltZXN0YW1wPGFzLlBPU0lYY3QoIjIwMTctMDktMjcgMTE6MDAgVVRDIikpLF0KCiNleHBvcnQgdXBkYXRlZCBjc3YKI3dyaXRlLmNzdihkZiwgcGFzdGUwKHdvcmtpbmdfZGlyLCAiaW50ZXJtZWRpYXRlLyIsbWFzdGVyJFNvbmRlX0lEW25dLCIuY3N2IikpCgojQ3JlYXRlIFBsb3QKZnVuKG4pCmBgYAoKI0RhdGFiYXNlIEltcG9ydApgYGB7ciBkYXRhYmFzZSBpbXBvcnQsIGVjaG89RkFMU0V9CiNDcmVhdGUgZnVuY3Rpb24KZnVuPC1mdW5jdGlvbihuKXsKICAjRG93bmxvYWQgaW50ZXJtZWRpYXRlIHRzIGRhdGEKICBkZjwtcmVhZC5jc3YocGFzdGUwKHdvcmtpbmdfZGlyLCJpbnRlcm1lZGlhdGUvIiwgbG9nc1tuXSkpCiAgZGY8LWRmWyxjKCJUaW1lc3RhbXAiLCJ3YXRlckxldmVsIildCiAgZGYkVGltZXN0YW1wPC1hcy5QT1NJWGN0KGRmJFRpbWVzdGFtcCkKCiAgI1NvbmRlIElECiAgc248LWFzLm51bWVyaWMoc3Vic3RyKGxvZ3Nbbl0sIDEsbmNoYXIobG9nc1tuXSktNCkpCiAgCiAgI0NyZWF0ZSB2YXJpYWJsZSBsaXN0CiAgdmFyc19saXN0PC1saXN0KCMicHJlc3N1cmVBYnNvbHV0ZSIgICAgPSBsaXN0KGNvbHVtbiA9ICJwcmVzc3VyZUFic29sdXRlIiwgICB1bml0cyA9ICJLUGEiKSwKICAgICAgICAgICAgICAgICAgIyJiYXJvbWV0cmljUHJlc3N1cmUiICA9IGxpc3QoY29sdW1uID0gImJhcm9tZXRyaWNQcmVzc3VyZSIsIHVuaXRzID0gIktQYSIpLAogICAgICAgICAgICAgICAgICAjInByZXNzdXJlR2F1Z2UiICAgICAgID0gbGlzdChjb2x1bW4gPSAicHJlc3N1cmVHYXVnZSIsICAgICAgdW5pdHMgPSAiS1BhIiksCiAgICAgICAgICAgICAgICAgICMiZ2FnZUhlaWdodCIgICAgICAgICAgPSBsaXN0KGNvbHVtbiA9ICJnYWdlSGVpZ2h0IiwgICAgICAgICB1bml0cyA9ICJNZXRlciIpLAogICAgICAgICAgICAgICAgICAiV2F0ZXIgbGV2ZWwiICAgICAgICAgID0gbGlzdChjb2x1bW4gPSAid2F0ZXJMZXZlbCIsICAgICAgICAgdW5pdHMgPSAiTWV0ZXIiKSkjLAogICAgICAgICAgICAgICAgICAjIm9mZnNldCIgICAgICAgICAgICAgID0gbGlzdChjb2x1bW4gPSAib2Zmc2V0IiwgICAgICAgICAgICAgdW5pdHMgPSAiTWV0ZXIiKSkKCiAgI0luc2VydCBkYXRhIGludG8gZGF0YWJhc2UKICB0MDwtU3lzLnRpbWUoKQogIGRiX2luc2VydF9yZXN1bHRzX3RzKGRiID0gZGIsICMgZGF0YWJhc2UgY29ubmVjdG9uCiAgICAgICAgICAgICAgICAgICAgICAgZGF0YXZhbHVlcyA9IGRmLCAjIGRhdGEgZnJhbWUgb2YgdGltZSBzZXJpZXMgZGF0YQogICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJQVF9Eb3dubG9hZCIsCiAgICAgICAgICAgICAgICAgICAgICAgc2l0ZV9jb2RlID0gYXMuY2hhcmFjdGVyKG1hc3RlciRTaXRlX05hbWVbbWFzdGVyJFNvbmRlX0lEPT1zbl0pLAogICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlcyA9IHZhcnNfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVkbWVkaXVtID0gIkxpcXVpZCBhcXVlb3VzIiwKICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25ieSA9ICJOYXRlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgZXF1aXBtZW50X25hbWUgPSBhcy5jaGFyYWN0ZXIobWFzdGVyJFNvbmRlX0lEW21hc3RlciRTb25kZV9JRD09c25dKSkKICB0ZjwtU3lzLnRpbWUoKQogIHRmLXQwCn0KCiNDcmVhdGUgbGlzdCBvZiBpbnRlcm1lZGlhdGUgZmlsZXMKbG9nczwtbGlzdC5maWxlcyhwYXN0ZTAod29ya2luZ19kaXIsImludGVybWVkaWF0ZSIpKQoKI1J1biBmdW5jdGlvbgp0MDwtU3lzLnRpbWUoKQpmb3IoaSBpbiAxOmxlbmd0aChsb2dzKSl7CiAgcHJpbnQoaSkKICBmdW4oaSkKfQp0ZjwtU3lzLnRpbWUoKQp0Zi10MAoKI0Rpc2Nvbm5lY3QgZnJvbSBEQgpkYkRpc2Nvbm5lY3QoZGIpCmBgYAo=